home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-06-16 | 1.6 KB | 102 lines | [TEXT/MPS ] |
- {
- { how to make system errors (on purpose)
- {
- { written for MacHack '89
- {
- { by Duane Maxwell (Levco) & Marshall Clow (Palomar)
- {
- { © 1989 by Mothers Against the PhotoElectric Effect
- { all rights reserved
- {
- }
-
- program errapp;
-
- uses
- MemTypes, QuickDraw, ToolIntf, OSIntf, PackIntf, SANE;
-
-
- const
- kDialog = 128;
- kOK = 1;
- kCancel = 2;
- kError = 3;
-
- type
- longPtr = ^LongInt;
-
- var
- gDone:Boolean;
- gDialog:DialogPtr;
-
- PROCEDURE MySysError(errorCode: INTEGER);
- INLINE $301F,$A9C9;
-
-
- {$I errapp.inc1.p }
-
-
- procedure InitStuff;
- begin
- gDone:=FALSE;
- InitGraf(@thePort);
- InitFonts;
- InitWindows;
- InitMenus;
- TEInit;
- InitDialogs(NIL);
- InitCursor;
- end;
-
- procedure DoStuff;
- var
- theError:LongInt;
- itemHit:integer;
- allOk:Boolean;
- str:Str255;
- aHandle:Handle;
- aType:integer;
- aBox:Rect;
- begin
- gDialog:=GetNewDialog(kDialog,Ptr(NIL),WindowPtr(NIL));
- if gDialog<>NIL then
- begin
- allOK:=FALSE;
- repeat
- theError:=0;
- NumToString (theError,str);
- GetDItem (gDialog,kError,aType,aHandle,aBox);
- SetIText(aHandle,str);
- SelIText(gDialog,kError,0,32000);
- repeat
- ModalDialog(NIL,itemHit);
- until (itemHit=kOK) or (itemHit=kCancel);
- allOK:=(itemHit=kCancel);
- if itemHit=kOK then
- begin
- GetIText(aHandle, str);
- StringToNum(str,theError);
- allOK := (theError>-100) and (theError<100);
- end;
- until allOK;
- if itemHit=OK then
- DoSystemError(theError)
- else
- gDone:=TRUE;
- DisposDialog(gDialog);
- end;
- end;
-
- procedure CleanUpStuff;
- begin
- end;
-
- begin {main}
- InitStuff;
- repeat
- DoStuff;
- until gDone;
- { if we work, this never happens}
- CleanUpStuff;
- end.
-